Add gtk_image_menu_item_new_from_stock()
authorAlexander Larsson <alexl@redhat.com>
Wed, 21 Mar 2001 08:56:25 +0000 (08:56 +0000)
committerAlexander Larsson <alexl@src.gnome.org>
Wed, 21 Mar 2001 08:56:25 +0000 (08:56 +0000)
2001-03-21  Alexander Larsson  <alexl@redhat.com>

* gtk/gtkimagemenuitem.[c]:
Add gtk_image_menu_item_new_from_stock()

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkimagemenuitem.c
gtk/gtkimagemenuitem.h

index 4173a1618d00a1373026d125b3ae9b0f84626c0a..117403a3280391eafcbea7d57572121f15c483eb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-03-21  Alexander Larsson  <alexl@redhat.com>
+
+       * gtk/gtkimagemenuitem.[c]:
+       Add gtk_image_menu_item_new_from_stock()
+
 Tue Mar 20 15:00:43 2001  Jonathan Blandford  <jrb@webwynk.net>
 
        * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
index 4173a1618d00a1373026d125b3ae9b0f84626c0a..117403a3280391eafcbea7d57572121f15c483eb 100644 (file)
@@ -1,3 +1,8 @@
+2001-03-21  Alexander Larsson  <alexl@redhat.com>
+
+       * gtk/gtkimagemenuitem.[c]:
+       Add gtk_image_menu_item_new_from_stock()
+
 Tue Mar 20 15:00:43 2001  Jonathan Blandford  <jrb@webwynk.net>
 
        * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
index 4173a1618d00a1373026d125b3ae9b0f84626c0a..117403a3280391eafcbea7d57572121f15c483eb 100644 (file)
@@ -1,3 +1,8 @@
+2001-03-21  Alexander Larsson  <alexl@redhat.com>
+
+       * gtk/gtkimagemenuitem.[c]:
+       Add gtk_image_menu_item_new_from_stock()
+
 Tue Mar 20 15:00:43 2001  Jonathan Blandford  <jrb@webwynk.net>
 
        * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
index 4173a1618d00a1373026d125b3ae9b0f84626c0a..117403a3280391eafcbea7d57572121f15c483eb 100644 (file)
@@ -1,3 +1,8 @@
+2001-03-21  Alexander Larsson  <alexl@redhat.com>
+
+       * gtk/gtkimagemenuitem.[c]:
+       Add gtk_image_menu_item_new_from_stock()
+
 Tue Mar 20 15:00:43 2001  Jonathan Blandford  <jrb@webwynk.net>
 
        * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
index 4173a1618d00a1373026d125b3ae9b0f84626c0a..117403a3280391eafcbea7d57572121f15c483eb 100644 (file)
@@ -1,3 +1,8 @@
+2001-03-21  Alexander Larsson  <alexl@redhat.com>
+
+       * gtk/gtkimagemenuitem.[c]:
+       Add gtk_image_menu_item_new_from_stock()
+
 Tue Mar 20 15:00:43 2001  Jonathan Blandford  <jrb@webwynk.net>
 
        * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
index 4173a1618d00a1373026d125b3ae9b0f84626c0a..117403a3280391eafcbea7d57572121f15c483eb 100644 (file)
@@ -1,3 +1,8 @@
+2001-03-21  Alexander Larsson  <alexl@redhat.com>
+
+       * gtk/gtkimagemenuitem.[c]:
+       Add gtk_image_menu_item_new_from_stock()
+
 Tue Mar 20 15:00:43 2001  Jonathan Blandford  <jrb@webwynk.net>
 
        * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
index 4173a1618d00a1373026d125b3ae9b0f84626c0a..117403a3280391eafcbea7d57572121f15c483eb 100644 (file)
@@ -1,3 +1,8 @@
+2001-03-21  Alexander Larsson  <alexl@redhat.com>
+
+       * gtk/gtkimagemenuitem.[c]:
+       Add gtk_image_menu_item_new_from_stock()
+
 Tue Mar 20 15:00:43 2001  Jonathan Blandford  <jrb@webwynk.net>
 
        * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render):
index 228e8c111cb0e3fdb1e8534c360f9ce5d5e45f44..51dad6cd8318b98ad720423761e53a3b11116e8e 100644 (file)
@@ -28,6 +28,9 @@
 #include "gtkaccellabel.h"
 #include "gtksignal.h"
 #include "gtkintl.h"
+#include "gtkstock.h"
+#include "gtkiconfactory.h"
+#include "gtkimage.h"
 
 static void gtk_image_menu_item_class_init           (GtkImageMenuItemClass *klass);
 static void gtk_image_menu_item_init                 (GtkImageMenuItem      *image_menu_item);
@@ -359,6 +362,37 @@ gtk_image_menu_item_new (GtkWidget   *widget,
   return GTK_WIDGET(image_menu_item);
 }
 
+GtkWidget*
+gtk_image_menu_item_new_from_stock (const gchar      *stock_id,
+                                   GtkAccelGroup    *accel_group)
+{
+  GtkWidget *image;
+  GtkStockItem stock_item;
+  GtkWidget *item;
+
+  g_return_val_if_fail (stock_id != NULL, NULL);
+
+  image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU);
+
+  if (gtk_stock_lookup (stock_id, &stock_item))
+    {
+      item = gtk_image_menu_item_new (image, stock_item.label);
+      
+      if (stock_item.keyval && accel_group)
+       gtk_widget_add_accelerator (item,
+                                   "activate",
+                                   accel_group,
+                                   stock_item.keyval,
+                                   stock_item.modifier,
+                                   GTK_ACCEL_VISIBLE);
+    }
+  else
+    item = gtk_image_menu_item_new (image, stock_id);
+  
+  gtk_widget_show (image);
+  return item;
+}
+
 void
 gtk_image_menu_item_add_image (GtkImageMenuItem *image_menu_item,
                                GtkWidget        *child)
index 50be055b172acf421c9de243f4d8b3a148257f60..714bcf76ccfbb833cbcc058b9b71c8591d6e6c08 100644 (file)
@@ -62,12 +62,14 @@ struct _GtkImageMenuItemClass
 };
 
 
-GtkType           gtk_image_menu_item_get_type  (void) G_GNUC_CONST;
-GtkWidget* gtk_image_menu_item_new       (GtkWidget        *widget,
-                                          const gchar      *label);
-void       gtk_image_menu_item_add_image (GtkImageMenuItem *image_menu_item,
-                                          GtkWidget        *child);
-GtkWidget* gtk_image_menu_item_get_image (GtkImageMenuItem *image_menu_item);
+GtkType           gtk_image_menu_item_get_type       (void) G_GNUC_CONST;
+GtkWidget* gtk_image_menu_item_new            (GtkWidget        *widget,
+                                              const gchar      *label);
+GtkWidget* gtk_image_menu_item_new_from_stock (const gchar      *stock_id,
+                                              GtkAccelGroup    *accel_group);
+void       gtk_image_menu_item_add_image      (GtkImageMenuItem *image_menu_item,
+                                              GtkWidget        *child);
+GtkWidget* gtk_image_menu_item_get_image      (GtkImageMenuItem *image_menu_item);
 
 #ifdef __cplusplus
 }